iT邦幫忙

2017 iT 邦幫忙鐵人賽
DAY 13
0
自我挑戰組

摘要翻譯矽谷相關的英文文章系列 第 13

工作跟生活的平衡可以讓你成為一個更好的軟體工程師

  • 分享至 

  • xImage
  •  

大家傾向認為把工作帶回家作可以讓你成為一個更好的軟體工程師,生活及工作的平衡只會限制學習。

  • 對有些人來說寫程式不只是一份工作,對他們來說這很有趣,有時甚至寫程式本身就是他的原因(sometimes even a reason for being)。如果你喜歡寫程式,而寫程式又是你的工作,為什麼不在週末的時候繼續工作呢?這可以讓你有更多的練習。
  • 當你沒有動機或能力把工作帶回家時,你會覺得你永遠沒辦法像那些優秀的工程師一樣。

但實際上,要成為一個好的軟體工程師,你不應該把工作帶回家。

怎麼才算是一個好的軟體工程師?有能力可以解決困難且複雜的問題。這就是為什麼在你正常工作時間外花額外的時間並不會讓你成為一名優秀的工程師。

新的問題,新的解法

如果在你空閒的時間你有餘力寫程式,你可以為你的工作做更多。但這限制了你會遇到的問題以及考慮的解決方法。

如果你把工作帶回家,這會讓你一直在解決跟你工作時一樣的問題。你需要用符合雇主的目標的技術,用同樣的標準來達到雇主預期的品質。但如果你在寫你自己的專案,你不會受到這些限制。

  • 如果你的公司對品質的要求很低,你可以學到如何寫好測試
  • 或你可以用各種方式寫來學習新的東西
  • 你可以學習不同領域的技術

我有次在寫一個 Python 的程式,雖然沒有沒有跑得好到可以用,但這個過程還是很有教育性。(這段我省略了他描述技術的部分,因為我實在看不懂)

不同的專案可以讓你學到其他東西,這會讓你成為更好的工程師。就算你沒有動力或時間在家裡寫程式也不用害怕,工作與生活的平衡還是可以讓你成為一個更好的軟體工程師。

學習其他東西

作為一個好的軟體工程師並不只是寫程式而已。還有很多其他技巧你需要會,花時間在學習這些東西仍然會增加你的能力。

當我年輕有很多時間時,晚上都去攻讀大學的自由派藝術學位,其中我學會了如了尋找其中抽象的概念、怎麼組織這些寫法、怎麼解釋複雜的概念、怎麼解讀文字中細微的差異。這對我在處理很困難的問題時非常有幫助,像是需要好的抽象能力和設計文件的時候。

這些年我花很多時間在我孩子身上,這影響了我學習什麼東西。比如說,需要簡化複雜到東西,好向一個四歲的小孩解釋其中最核心的概念。

你需要休息以解決困難的問題

雖然學習其他東西可以幫助你,但工作/生活平衡最大的好處是:你沒有在工作。困難的問題需要時間沈澱,那些時間你是真的沒有在思考,這些時間是給你的腦袋重新組合一切。Clojure 的發明者 Rich Hickey,有個很棒的演講題目是Hammock Driven Development

重點在於困難的問題需要大量的研究,尋找可以使用的解決辦法,然後讓你的大腦自行重新排列組合,這是需要時間的,而這些時間是你沒有在想這些問題的。

有時我在照顧小孩時,雖然沒有到真的很放鬆的狀態,遇到的問題也沒有達到 Hickey 說困難問題的標準。但我發現一段時間沒有在思考問題還是對於我隔天上班很有幫助

學習做更少的是達到更大的效果(do more with less)

最後一個工作/生活的平衡的好處是態度:你對你的工作的想法。如果你在額外的時間做你的工作,你在讓自己花更多非必要的時間在工作上。作爲一個軟體工程師想要進步,你應該要學習如何在更短的時間完成你的工作,這在處理大型寫款難的專案時尤其重要。

合理的工作,限制工作的時數讓你專注在在如何更有生產力,而不是用一個很困難很慢的方式解決問題。


讓自己不要把工作帶回家吧。如果你想要繼續寫程式,找出你有興趣的專案應該不會太難。如果你沒辦法或不想要在空閒的時間寫程式,那也沒關係。

但如果你沒有選擇?你在工作和生活中並沒有平衡,因為來自你老闆的壓力或是在工作上一直有緊急的狀況。這個情況你應該要來上我的免費課程,教你如何有個比較合理比較短的工作時數


你不應該在晚上或週末工作來成為一個優秀的軟體工程師,你可以看看Programmer's Guide to a Sane Workweek

原文:Work/Life Balance Will Make You a Better Software Engineer


上一篇
翻譯了十篇文章後我學到什麼?
下一篇
Kent Beck:「我是被請來寫程式的,不是測試」
系列文
摘要翻譯矽谷相關的英文文章30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言